package main

import "fmt"
//import "unsafe"

func main(){

	// //+加号
	// //1.表示正数
	// var n1 int = +3
	// fmt.Println(n1)
	// //2.相加操作
	// var n2 int = 2 + 3
	// fmt.Println(n2)
	// //3.字符串拼接
	// var s1 string = "abc" + "def"
	// fmt.Println(s1)
	// //除号
	// fmt.Println(10 / 3)                      //两个int类型数据运算，结果一定为整型
	// fmt.Println(10.0 / 3)                    //浮点类型参与运算，结果为浮点类型

	// // % 取模 等价公式：a % b = a - a / b * b
	// fmt.Println(10 % 3)                      //10 % 3 = 10 - 10 / 3 * 3

	// // ++ 自增：加1
	// var n3 int = 3
	// n3++
	// fmt.Println(n3)
	// //  --  自减：减1
	// n3--
	// fmt.Println(n3)

	// //赋值运算符
	// var a int = 10
	// a += 2 //a = a + 2
	// fmt.Println(a)
	//实现：交换两个数的值并输出结果
	// var a int = 2
	// var b int = 3
	// fmt.Printf("a = %v,b = %v\n", a,b)
	// //交换：
	// //引入中间变量
	// a,b = b,a
	// fmt.Printf("a = %v,b = %v", a,b)
	
	//关系运算符
	// fmt.Println(5 == 9) //判断左右两侧的值是否相等，相等返回true，不相等返回false
	// fmt.Println(5 != 9) //判断左右两侧的值是否不相等，不相等返回true，相等返回false
	// // == 和 = ： == 是关系运算符，用于进行比较操作，结果为bool类型： = 赋值运算符
	
	//逻辑与：&&：两个数值/表达式只要有一侧为false，结果一定为false
	//又叫做短路与：只要第一个数/表达式为false，那么后面的表达式就不用执行，直接结果为false
	// fmt.Println(true&&true)
	// fmt.Println(true&&false)
	// fmt.Println(false&&true)
	// fmt.Println(false&&false)
	// //逻辑或： ||:两个数值/表达式只要有一侧是true,结果一定为true
	// //又叫做短路或：只要第一个数/表达式为true，那么后面的表达式就不用执行，直接结果为true
	// fmt.Println(true||true)
	// fmt.Println(true||false)
	// fmt.Println(false||true)
	// fmt.Println(false||false)
    
	// //逻辑非：取相反的结果：
	// fmt.Println(!true)
	// fmt.Println(!false)

	// //其他运算符
	// var a int = 5
	// fmt.Println(&a)

	// var ptr *int = &a
	// fmt.Println(ptr)
	// fmt.Println(*ptr)

	var age int 
	fmt.Println("请输入学生的年龄：")
	fmt.Scanln(&age)
	// fmt.Printf("学生的年龄为：%v\v",age)

	var name string 
	fmt.Println("请输入学生的姓名：")
	fmt.Scanln(&name)
	// fmt.Printf("学生的姓名为：%v\v",name)

	var score float32
	fmt.Println("请输入学生的成绩：")
	fmt.Scanln(&score)
	// fmt.Printf("学生的成绩为：%v\v",score)

	var isInClass bool
	fmt.Println("请输入学生是否旷课：")
	fmt.Scanln(&score)
	// fmt.Printf("学生是否旷课：%v\v",isInClass)
	fmt.Printf("学生的年龄为：%v,学生的姓名为：%v,学生的成绩为：%v,学生是否旷课：%v\n",age,name,score,isInClass) 

	//方式二：Scanf
	var age int 
	var name string
	var score float32
	var isInClass bool
	fmt.Println("请输入学生年龄，姓名，成绩，是否旷课，使用空格进行分隔")
	fmt.Scanf("%d %s %f %t",&age,&name,&score,&isInClass)
	fmt.Printf("学生的年龄为：%v,学生的姓名为：%v,学生的成绩为：%v,学生是否旷课：%v\n",age,name,score,isInClass)
	

}